Before a memory space is made usable to a processor, the memory space is often initialized to an initial value. For example, when an object is dynamically allocated in an object oriented programming language, the default values of the object may be set to zero. Initializing the memory space to an initial value can be an expensive process. Since the initialized memory space is often not in the cache of a processor, storing the initial value to the memory space creates a cache miss in all levels of the cache. The current value of the memory space is obtained from main memory only to be replaced with the new initial value. Since cache misses consume a large number of clock cycles, storing the initial value can waste valuable clock cycles as the processor waits to execute the next instruction that is often dependent upon the completion of the initial value store. In multi-processor systems, other processor caches may be caching an old value of the initialized memory space. Cache coherence invalidations must be sent to the other caches to invalidate the old cache values before the new initial value can be stored. This may add even more wasted clock cycles. Therefore, there exists a need to more efficiently manage execution during memory space initialization.